{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "K_values= [0.625, 0.38461538461538464, 0.2777777777777778, 0.21739130434782608, 0.17857142857142858, 0.15151515151515152, 0.13157894736842105, 0.11627906976744186, 0.10416666666666666, 0.09433962264150944, 0.08620689655172413, 0.07936507936507936, 0.0735294117647059, 0.06849315068493152, 0.06410256410256411]\n",
      "estimate_values= [78.75, 80.38461538461539, 80.0, 79.56521739130434, 79.82142857142857, 79.69696969696969, 79.73684210526315, 79.53488372093022, 79.6875, 79.62264150943396, 79.6551724137931, 79.52380952380952, 79.63235294117646, 79.58904109589041, 79.74358974358974]\n",
      "estimate_errors= [1.875, 1.153846153846154, 0.8333333333333334, 0.6521739130434783, 0.5357142857142857, 0.45454545454545453, 0.39473684210526316, 0.3488372093023256, 0.3125, 0.2830188679245283, 0.25862068965517243, 0.23809523809523814, 0.2205882352941177, 0.20547945205479456, 0.19230769230769235]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x116614b20>]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x116614f10>]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x116614e50>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('seaborn-whitegrid')\n",
    "import numpy as np\n",
    "from tabulate import tabulate\n",
    "\n",
    "measure_values = [81,83,79,78,81,79,80,78,81,79,80,78,81,79,82]\n",
    "measure_error = [3] * 15\n",
    "pre_estimate_value = 75\n",
    "pre_estimate_error = 5\n",
    "estimate_values = [0] * 15\n",
    "estimate_errors = [0] * 15\n",
    "K_values = [0] * 15\n",
    "\n",
    "for i in range(15):\n",
    "    # K_n = \\frac{最优估计值误差_{n_1}}{最优估计值误差_{n_1} + 测量值误差_n}\n",
    "    K_values[i] = pre_estimate_error/(pre_estimate_error + measure_error[i])\n",
    "    # 最优估计值_n = 最优估计值_{n-1} + K_n \\times (测量值_n - 最优估计值_{n-1})\n",
    "    estimate_values[i] = pre_estimate_value + K_values[i] * (measure_values[i] - pre_estimate_value)\n",
    "    # 最优估计值误差_{n-1} = (1 - K_{n-1}) \\times 最优估计值误差_{n-2}\n",
    "    estimate_errors[i] = (1 - K_values[i]) * pre_estimate_error\n",
    "\n",
    "    pre_estimate_value = estimate_values[i]\n",
    "    pre_estimate_error = estimate_errors[i]\n",
    "    \n",
    "print(\"K_values=\",K_values)\n",
    "print(\"estimate_values=\", estimate_values)\n",
    "print(\"estimate_errors=\", estimate_errors)\n",
    "\n",
    "fig = plt.figure()\n",
    "ax = plt.axes()\n",
    "\n",
    "x = np.linspace(1, 15, 15)\n",
    "ax.plot(x, measure_values, label=\"measure_values\", color='red')\n",
    "ax.plot(x, estimate_values, label=\"estimate_values\", color='green')\n",
    "\n",
    "plt.legend(loc='upper right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
